<?php

class Application_Model_PrecoAtividade extends Zend_Db_Table_Abstract {

    protected $_name = 'preco_atividade';
    //protected $_primary = 'codigo';
    private static $instance;

    public static function getInstance() {
        if (!isset(self::$instance)) {
            self::$instance = new Application_Model_PrecoAtividade();
            return self::$instance;
        }
        return self::$instance;
    }

    public function insert($data) {
        if (isset($data['atividade']) && isset($data['plano_saude'])&& isset($data['valor'])) {
            $sql = ' insert into preco_atividade (atividade,plano_saude,valor,codigo_plano) values('
                    .$data['atividade'].','.$data['plano_saude'].','.$data['valor'].','.$data['codigo_plano'].')';
            $this->getAdapter()->query($sql);
        }
    }

    public function update($data){
        if (isset($data['atividade']) && isset($data['plano_saude'])) {
            $sql = 'update preco_atividade set valor = '.$data['valor'].' ,codigo_plano = '.$data['codigo_plano'].'
                     where atividade = '.$data['atividade'].' and plano_saude = '. $data['plano_saude'];
            $this->getAdapter()->query($sql);
        }
    }
    
    public function getById($id) {
        return $this->fetchRow("codigo = " . $id . " and dt_exclusao is null");
    }

    public function lista($data) {
        $sql = 'select codigo,descricao,dt_cadastro
                from atividade
                where dt_exclusao is null ';

        if (isset($data['descricao']) && !empty($data['descricao'])) {
            $sql.=' and descricao like \'' . $data['descricao'] . '%\'';
        }

        if (isset($data['dt_cadastro']) && !empty($data['dt_cadastro'])) {
            $sql.=' and dt_cadastro = \'' . $data['dt_cadastro'] . '\'';
        }

        if (isset($data['sortorder']) && isset($data['sortname'])) {
            $sql .= ' order by ' . $data['sortname'] . ' ' . $data['sortorder'];
        }

        $rs = $this->getAdapter()->query($sql)->fetchAll();
        $paginator = Zend_Paginator::factory($rs);
        $paginator->setCurrentPageNumber($data['page']);
        $paginator->setItemCountPerPage($data['rp']);

        return $paginator;
    }

    public function getByPlanoSaude($planoSaude) {
        $sql = 'select atividade, plano_saude, valor, codigo_plano from preco_atividade where plano_saude = ' .$planoSaude;
        return $this->getAdapter()->fetchAll($sql);
    }

    public function removeByPlanoSaude($codigoPlano) {
        $sql = 'delete from preco_atividade where plano_saude = ' . $codigoPlano;
        $this->getAdapter()->query($sql);
    }
    
    public function removeByAtividade($codigoAtividade) {
        $sql = 'delete from preco_atividade where atividade = ' . $codigoAtividade;
        $this->getAdapter()->query($sql);
    }
    
    public function removeByAtivPlano($codigoAtividade,$codPlano) {
        $sql = 'delete from preco_atividade where atividade = ' . $codigoAtividade . ' and plano_saude = '. $codPlano;
        $this->getAdapter()->query($sql);
    }

}